package com.ydgg.ltar.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;

import com.ydgg.ltar.mapper.MemberMapper;
import com.ydgg.ltar.mapper.SafeSessionMapper;
import com.ydgg.ltar.model.Member;
import com.ydgg.ltar.model.SafeSession;

/**
 * 安全登录
 * 作者： 张叶
 * 创建时间：2018年6月6日  下午2:45:59
 */
@Service
public class SafeSessionService {
	
	@Autowired
	private SafeSessionMapper safeSessionMapper;//安全登录
	
	@Autowired
	private MemberMapper memberMapper;//安全登录

	
	/**
	 * 判断是否安全登录
	 * 作者：张叶
	 * 时间：2016年9月8日 上午9:38:22
	 */
	public Member getCurrent(HttpServletRequest request) {
		RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
		if (requestAttributes != null) {
			String sessionId = request.getParameter("sessionId") == null ? "" : request.getParameter("sessionId");
			HttpSession session = request.getSession();
			String ssId = session.getAttribute("sessionId") == null ? "" : session.getAttribute("sessionId").toString();
			if (sessionId.equals(ssId)) {
				SafeSession ss = safeSessionMapper.findBySessionId(ssId);
				if (ss != null) {
					Member member = memberMapper.findByOpenId(ss.getAccountno());
					return member;
				}
			} else {
				SafeSession ss = safeSessionMapper.findBySessionId(sessionId);
				if (ss != null) {
					Member member = memberMapper.findByOpenId(ss.getAccountno());
					return member;
				}
			}
		}
		return null;
	}

	
	/**
	 * 添加记录
	 * 作者：张叶
	 * 时间：2016年9月8日 上午9:37:32
	 */
	public void insert(SafeSession ss) {
		safeSessionMapper.insert(ss);
	}
	public int deleted(String telphone) {
		return safeSessionMapper.deleteByPrimaryKey(telphone);
	}


	/**
	 * 查找
	 * 作者：张叶
	 * 时间：2016年9月8日 上午9:37:24
	 */
	public SafeSession findBySessionId(String sessionId) {
		return safeSessionMapper.findBySessionId(sessionId);
	}

	
	/**
	 * 判断用户是否登陆过
	 * 作者：张叶
	 * 时间：2016年9月8日 上午9:37:43
	 */
	public SafeSession findByAccountAndPassword(String accountNo, String password) {
		return safeSessionMapper.findByAccountAndPassword(accountNo);
	}


	/**
	 * 修改记录
	 * 作者：张叶
	 * 时间：2016年9月8日 上午9:37:55
	 */
	public int update(SafeSession safeSession) {
		return safeSessionMapper.update(safeSession);
	}

}
